package com.link2room.soundwave.facade;

import com.link2room.common.jpa.result.QueryResult;
import com.link2room.jetfire.dto.param.base.ReservationParamDto;
import com.link2room.soundwave.dto.param.api.MemeberCardPayApiParamDto;
import com.link2room.soundwave.dto.param.base.PmsReservationBaseParamDto;
import com.link2room.soundwave.dto.param.inside.BookInfoListInsideParamDto;
import com.link2room.soundwave.dto.param.inside.MemeberCardPayInsideParamDto;
import com.link2room.soundwave.dto.param.inside.PmsReservationPayInsideParamDto;
import com.link2room.soundwave.dto.param.inside.ReservationStaInsideParamDto;
import com.link2room.soundwave.dto.result.base.AccountResultDto;
import com.link2room.soundwave.dto.result.base.PmsAccountDto;
import com.link2room.soundwave.dto.result.base.PmsBookInfoDto;

/**
 * Created by VegetaKo on 2016/9/23.
 */
public interface IPmsReservationHandlerFacadeService {
    void savePMSReservationHandler(ReservationParamDto reservationParamDto) throws Exception;

    void cancelPMSReservationHandler(ReservationParamDto reservationParamDto) throws Exception;

    void savePMSReservationPayHandler(PmsReservationPayInsideParamDto pmsReservationPayInsideParamDto) throws Exception;

    void syncReservationStaHandler(ReservationStaInsideParamDto reservationStaInsideParamDto) throws Exception;

    void syncPMSHotelReservationStaHandler(PmsReservationBaseParamDto pmsReservationBaseParamDto) throws Exception;

    QueryResult<PmsBookInfoDto> getPMSReservationsHandler(BookInfoListInsideParamDto bookInfoListInsideParamDto) throws Exception;

    QueryResult<PmsAccountDto> listPmsAccountsHandler(PmsReservationBaseParamDto pmsReservationBaseParamDto)throws Exception;

    AccountResultDto getAccountResultHandler(PmsReservationBaseParamDto pmsReservationBaseParamDto)throws Exception;

    /**
     * 储值卡支付预下单
     */
    String memberCardPrepayHandler(MemeberCardPayInsideParamDto memeberCardPayInsideParamDto)throws Exception;

    /**
     * 储值卡支付预下单
     */
    void memberCardPayHandler(MemeberCardPayApiParamDto memeberCardPayApiParamDto)throws Exception;

}
